package com.doit.day06

object _05_科里化函数 {
  def main(args: Array[String]): Unit = {

//    add(1,2)==> 3 Int

/*    val intToInt: Double => Double = add1(100)
    intToInt(0.6)
    intToInt(0.8)
    intToInt(0.9)
    //可以减少参数的传递
    add(100,0.5)
    add(100,0.6)
    add(100,0.8)*/

    //第二个作用，运用在隐式参数里面

    //第三个作用：可以更好的做类型的推断
    //  def add3(a:A,b:a.B)
    def add3(a:A)(b:a.B)={}

  }

  def add( a:Int, b:Double)={
    a*b
  }

  //写法不一样   将一个参数列表中的多个参数，分散成多个参数列表这样的写法叫科里化写法
  def add1(a:Int)(implicit b:Double)={
    a*b
  }



}


class A{
  class B
}